const express = require("express");
const path = require("path");
const bodyParser = require("body-parser");
const fs = require("fs");
let app = express();
// 使用中间件 
app.use(bodyParser.urlencoded({ extended: false }));
app.get("/", (req, res) => {
  // 加载视图
  res.sendFile(path.join(__dirname, "./views/index.html"));
})

// 接收post过来的数据
app.post("/addUser", (req, res) => {
  // console.log(req.body); //body属性是bodyParser第三方中间件的功能
  if (!fs.existsSync("./data")) {  // 判断是否存在data目录，如果不存在就创建一个data目录
    fs.mkdirSync("./data"); // 创建data目录
  }
  if (!fs.existsSync("./data/users.json")) { //判断data目录下，如果没有data.json文件，就创建一个data.json文件，里面的内容是空数组字符串
    fs.writeFileSync("./data/users.json", JSON.stringify([]));
  }

  // 读取users.json里的内容 
  let oldUsers = JSON.parse(fs.readFileSync("./data/users.json"));
  // 把post过来的数据添加到读取的数据中
  oldUsers.push(req.body);
  // 重新写入到users.json文件里
  fs.writeFileSync("./data/users.json", JSON.stringify(oldUsers));
  // res.send("接收了数据")
  // 添加成功之后跳转到/showUsers路由里去；
  res.redirect("/showUsers");
})

// 显示用户
app.get("/showUsers", (req, res) => {
  let users = JSON.parse(fs.readFileSync("./data/users.json"));
  let htmlStr = "<ul>";
  users.forEach(item => {
    htmlStr += `<li>用户名是：${item.username}，年龄是${item.age},性别是:${item.gender}</li>`;
  })
  htmlStr += "</ul>";
  res.send(htmlStr);
})

app.listen(8080);